// Created by zyq on 2025/3/31.
#include "iostream"

using namespace std;

class TestPaper {
public:
    void Q1() {
        cout << "Q1: " + Answer1() << endl;
    }

    void Q2() {
        cout << "Q2: " + Answer2() << endl;
    }

    void Q3() {
        cout << "Q3: " + Answer3() << endl;
    }

    virtual string Answer1() {
        return "";
    }

    virtual string Answer2() {
        return "";
    }

    virtual string Answer3() {
        return "";
    }
};

class TestPaperA : public TestPaper {
public:
    string Answer1() override {
        return "A";
    }

    string Answer2() override {
        return "B";
    }

    string Answer3() override {
        return "C";
    }
};

class TestPaperB : public TestPaper {
public:
    string Answer1() override {
        return "C";
    }

    string Answer2() override {
        return "B";
    }

    string Answer3() override {
        return "A";
    }
};

int main() {
    cout << "TestPaperA:" << endl;
    TestPaper *testPaper = new TestPaperA();
    testPaper->Q1();
    testPaper->Q2();
    testPaper->Q3();
    delete testPaper;
    cout << "TestPaperB:" << endl;
    TestPaper *testPaper2 = new TestPaperB();
    testPaper2->Q1();
    testPaper2->Q2();
    testPaper2->Q3();
    delete testPaper;
    return 0;
}

